package com.nativetalk.dao;

import com.nativetalk.base.Page;
import com.nativetalk.bean.member.course.TdNtMembCourseDetail;
import com.nativetalk.bean.study.*;

import java.util.List;
import java.util.Map;

/**
 * Created by lizhun on 15/12/28.
 * Modified by wangzheng on 17/03/10
 */
@MyBatisRepository
public interface TdNtStudyTeachDao {
    /**
     * @Purpose  根据用户id查找用户学习记录数量
     * @version  1.0
     * @author   lizhun
     * @param    memb_id
     * @return   Integer
     */
    public Integer findTdNtStudyTeachByMembIdSize(Integer memb_id);
    /**
     * @Purpose  根据用户id查找用户学习记录列表
     * @version  1.0
     * @author   lizhun
     * @param    map
     * @return   List<TdNtStudyTeachList>
     */
    public List<TdNtStudyTeachList> findTdNtStudyTeachByMembIdPage(Map<String,Object> map);
    /**
     * @Purpose  根据学习id查找用户学习记录列详情
     * @version  1.0
     * @author   lizhun
     * @param    stt_id
     * @return   TdNtStudyTeachDetail
     */
    public TdNtStudyTeachDetail findTdNtStudyTeachDetail(Integer stt_id);
    /**
     * @Purpose  根据学习id查找用户学习记录(添加评论用)
     * @version  1.0
     * @author   lizhun
     * @param    reserve_id
     * @return   TdNtStudyTeachComment
     */
    public TdNtStudyTeachComment findTdNtStudyTeachComment(Integer reserve_id);
    /**
     * @Purpose  更新学习评分
     * @version  1.0
     * @author   lizhun
     * @param    map
     * @return   void
     */
    public void updateTdNtStudyTeachComment(Map<String,Object> map);
    /**
     * @Purpose  添加学习记录
     * @version  1.0
     * @author   lizhun
     * @param    tdNtStudyTeachInsert
     * @return   void
     */
    public void insertTdNtStudyTeach(TdNtStudyTeachInsert tdNtStudyTeachInsert);
    /**
     * @Purpose  查找评价是需展示的相关信息
     * @version  1.0
     * @author   lizhun
     * @param    stt_id
     * @return   TdNtStudyTeachToComment
     */
    public TdNtStudyTeachToComment findTdNtStudyTeachToComment(Integer stt_id);
    /**
     * @Purpose  根据教师id查找教师教学记录数量
     * @version  1.0
     * @author   lizhun
     * @param    tea_id
     * @return   Integer
     */
    public Integer findTdNtStudyTeachByTeaIdSize(Integer tea_id);
    /**
     * @Purpose  根据教师id查找教学记录列表
     * @version  1.0
     * @author   lizhun
     * @param    map
     * @return   List<TdNtStudyTeachList>
     */
    public List<TdNtStudyTeachTeacherList> findTdNtStudyTeachByTeaIdPage(Map<String,Object> map);
    /**
     * @Purpose  根据学习id查找教学记录列详情
     * @version  1.0
     * @author   lizhun
     * @param    stt_id
     * @return   TdNtStudyTeachTeacherDetail
     */
    public TdNtStudyTeachTeacherDetail findTTdNtStudyTeachTeacherDetail(Integer stt_id);

    /**
     * @Purpose  更新教学记录
     * @version  1.0
     * @author   lizhun
     * @param    tdNtStudyTeachUpdate
     * @return   void
     */
    public void updateTdNtStudyTeach(TdNtStudyTeachUpdate tdNtStudyTeachUpdate);

    /**
     * @Purpose  根据学习id查找用户学习记录接单用
     * @version  1.0
     * @author   lizhun
     * @param    stt_id
     * @return   TdNtStudyTeachUpdate
     */
    public TdNtStudyTeachUpdate findTdNtStudyTeachUpdate(Integer stt_id);
    /**
     * @Purpose  更新教学记录(结束时用)
     * @version  1.0
     * @author   lizhun
     * @param    tdNtStudyTeachUpdate
     * @return   void
     */
    public void updateTdNtStudyTeachEnd(TdNtStudyTeachUpdate tdNtStudyTeachUpdate);
    /**
     * @Purpose  更新教学记录(取消时用)
     * @version  1.0
     * @author   lizhun
     * @param    tdNtStudyTeachUpdate
     * @return   void
     */
    public void updateTdNtStudyTeachCancel(TdNtStudyTeachUpdate tdNtStudyTeachUpdate);
    /**
     * @Purpose  根据教师id查找正在教学的学习详情
     * @version  1.0
     * @author   lizhun
     * @param    tea_id
     * @return   TdNtStudyTeachTeacherDetail
     */
    public TdNtStudyTeachDetail findStudyTeachByTeaId(Integer tea_id);
    /**
     * @Purpose  查找评价是需展示的相关信息
     * @version  1.0
     * @author   lizhun
     * @param    stt_id
     * @return   TdNtStudyTeachToComment
     */
    public TdNtStudyTeachCollectComment findTdNtStudyTeachToCommentThree(Integer stt_id);
    /**
     * @Purpose  查找学习的当前页数
     * @version  1.0
     * @author   wuyuanhui
     * @param    tdNtMembCourse
     * @return   TdNtStudyTeachToComment
     */
    public TdNtMembCourseDetail findTdNtMembCourseDetail(TdNtMembCourseDetail tdNtMembCourse);

    /**
     * @Purpose  查找上周学习总时长
     * @version  3.2
     * @author   lizhun
     * @param    map
     * @return   int
     */
    public int findMemberStudyWeekSize(Map<String, Object> map);
    /**
     * @Purpose  根据用户id查找用户学习记录列表
     * @version  3.2
     * @author   lizhun
     * @param    page
     * @return   List<TdNtStudyTeachListNew>
     */
    public List<TdNtStudyTeachListNew> findTdNtStudyTeachNewByMembIdPage(Page page);
    /**
     * @Purpose  根据教师id查找教学记录列表
     * @version  3.2
     * @author   lizhun
     * @param    page
     * @return   List<TdNtStudyTeachListNew>
     */
    public List<TdNtStudyTeachTeacherListNew> findTdNtStudyTeachNewByTeaIdPage(Page page);
    /**
     * @Purpose  更新老师评分
     * @version  3.2
     * @author   lizhun
     * @param    tdNtStudyTeachComment
     * @return   void
     */
    public void updateTdNtStudyTeachTeacherComment(TdNtStudyTeachComment tdNtStudyTeachComment);
    /**
     * @Purpose  查找上周教学总时长
     * @version  3.2
     * @author   lizhun
     * @param    map
     * @return   int
     */
    public int findTeacherTeachWeekSize(Map<String, Object> map);

    /**
     * @Purpose  根据学习id查找老师跟课程信息
     * @version  4.1
     * @author   wangzheng
     * @param    stt_id
     * @return   TdNtStudyTeachDetail
     */
    public TdNtStudyTeachDetail findCouTeaInfoBySttId(Integer stt_id);

    TdNtStudyTeachDetail findCouTeaInfoByRoomId(Integer room_id);
}
